﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace GrouponDesktop.ComprarCupon
{
    public partial class ComprarCup : Form
    {

        private int IDcliente;
        private int cupCred;
        private int IDcup;
        private int cantCup;
        private int maxCup;

        public ComprarCup(int Idcli)
        {
            this.IDcliente = Idcli;
            InitializeComponent();
        }

        private void ComprarCup_Load(object sender, EventArgs e)
        {
            //CUANDO SE CARGA LA FORM. ME CONECTO A LA BASE Y CARGO LA DGVC CON LOS CUPONES DE LA FECHA DEL ARCAIV DE CONFIGURACION.
            BDConnection.FillGrid("EXEC CodingSpree.listarCups '" + variablesGlobales.Configuracion.fechaHoy + "', " + IDcliente, dgv_cupones);
            //TAMAÑOS DEFAULT DE COLUMNAS. CREDITO, DESCRIPCION, FECHA VENCIMIENTO, FECHA VIGENCIA  
            dgv_cupones.Columns[0].Width = 50;
            dgv_cupones.Columns[1].Width = 50;
            dgv_cupones.Columns[0].ValueType = typeof(float);
            dgv_cupones.Columns[2].Width = 650;
            dgv_cupones.Columns[3].Width = 100;
            dgv_cupones.Columns[4].Width = 100;
            dgv_cupones.Columns[5].Visible = false;
            dgv_cupones.Columns[6].Visible = false;
            dgv_cupones.Columns[7].Visible = false;
         }


        private void b_comprarC_Click(object sender, EventArgs e)
        {
            int credito = BDConnection.QueryAndExecuteScalar("select CodingSpree.calcular_credito (" + this.IDcliente + ")");

            if (credito > ( (int)dgv_cupones.SelectedRows[0].Cells["precio"].Value * nu_cant.Value) )
            {

                if (( (int)dgv_cupones.SelectedRows[0].Cells["cantidad"].Value >= nu_cant.Value) && ( (int)dgv_cupones.SelectedRows[0].Cells["max_compras"].Value >= nu_cant.Value))
                {

                    string cod = Funciones.NuevoCodigoUnico(12);

                    MessageBox.Show("Cupon Comprado\n Codigo: " + cod);

                    BDConnection.execute("EXEC CodingSpree.insertCupxUser " + this.IDcliente + ", " + dgv_cupones.SelectedRows[0].Cells["id_cupon"].Value + " , '" + variablesGlobales.Configuracion.fechaHoy + "', " + nu_cant.Value + ", '" + cod + "'");
                    BDConnection.execute("EXEC CodingSpree.updCantCup " + dgv_cupones.SelectedRows[0].Cells["id_cupon"].Value + ", " + nu_cant.Value);
                }
                else
                {
                    MessageBox.Show("Cantidad NO Disponible");
                }

            }
            else
            {
                MessageBox.Show("CREDITO INSUFICIENTE");
            }
        
        }

        private void dgv_cupones_RowEnter(object sender, DataGridViewRowEventArgs e)
        {
            // CARGA EL CREDITO CUANDO SELECCIONO LA FILA
            this.cupCred = (int)dgv_cupones.SelectedRows[0].Cells["precio"].Value;
            this.IDcup = (int)dgv_cupones.SelectedRows[0].Cells["id_cupon"].Value;
            this.cantCup = (int)dgv_cupones.SelectedRows[0].Cells["cantidad"].Value;
            this.maxCup = (int)dgv_cupones.SelectedRows[0].Cells["max_compras"].Value;
        }

        private void b_refrescar_Click(object sender, EventArgs e)
        {
            //VOLVER A CARGAR LA DATAGRIDVIU
            //CUANDO SE CARGA LA FORM. ME CONECTO A LA BASE Y CARGO LA DGVC CON LOS CUPONES DE LA FECHA DEL ACAIV DE CONFIGURACION.
            BDConnection.FillGrid("EXEC CodingSpree.listarCups '" + variablesGlobales.Configuracion.fechaHoy + "', " + IDcliente, dgv_cupones);            //TAMAÑOS DEFAULT DE COLUMNAS. CREDITO, DESCRIPCION, FECHA VENCIMIENTO, FECHA VIGENCIA  
            dgv_cupones.Columns[0].Width = 50;
            dgv_cupones.Columns[1].Width = 50;
            dgv_cupones.Columns[0].ValueType = typeof(float);
            dgv_cupones.Columns[2].Width = 650;
            dgv_cupones.Columns[3].Width = 100;
            dgv_cupones.Columns[4].Width = 100;
            dgv_cupones.Columns[5].Visible = false;
            dgv_cupones.Columns[6].Visible = false;
            dgv_cupones.Columns[7].Visible = false;
        }
    }
}
